﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
///////////////////////////////////////!!!! УСТАРЕЛО - АТРИБУТЫ ПРИВЯЗВАНЫ К ПОЛЯМ НО НЕ ИСПОЛЬЗУЮТСЯ ///////////////////////////////////////
namespace TI
{
    /// <summary>
    /// Атрибут описывающий связку объектов
    /// </summary>
    public class LinkObjectAttribute : Attribute
    {
        private string childFieldName = string.Empty;
        private string parentFieldName = string.Empty;
        private bool  isDictionaryValue = false;
        private bool isPartialObject = false;
        private bool isCollection = false;

        public LinkObjectAttribute()
        { 
        }

        /// <summary>
        /// Наименование связанного поля
        /// </summary>
        public string ChildFieldName
        {
            get { return childFieldName; }
            set { childFieldName = value; }
        }

        /// <summary>
        /// Наименование связанного поля
        /// </summary>
        public string ParentFieldName
        {
            get { return parentFieldName; }
            set { parentFieldName = value; }
        }

        /// <summary>
        /// Признак - поле является объектом справочника
        /// </summary>
        public bool IsDictionaryValue
        {
            get { return isDictionaryValue;}
            set { isDictionaryValue = value;}
        }

        /// <summary>
        /// Поле представляет собой частичный объект.        
        /// </summary>
        public bool IsPartialObject
        {
            get { return isPartialObject; }
            set { isPartialObject = value; }
        }

        /// <summary>
        /// Поле представляет собой частичный объект.        
        /// </summary>
        public bool IsCollection
        {
            get { return isCollection; }
            set { isCollection = value; }
        }
        
    }
    /// <summary>
    /// Тригер выполняемый перед линковкой
    /// </summary>
    public class LinkTriggerAttribute : Attribute
    {
        public string ProcedureName { get; set; }
        public string ParamFieldName { get; set; }
    }
    
}
